<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <style>
      /* 填写样式 */
    </style>
  </head>

  <body>
    <!-- 填写标签 -->
    <script type="text/javascript">
      /**
       * 需要获取不在原型链上的属性，我们这里列举了两种写法
       * 第一种是使用for in 遍历对象
       * 这种遍历方式是会遍历对象的原型链上的属性的，
       * 所以需要使用hasOwnProperty判断是否是原型链上的属性
       * 
       * 第二种是使用Object.keys获取属性名map进行遍历
       * 这种遍历方式是不会遍历对象的原型链上的属性的，
       * 所以无需判断直接使用map整合为数组即可
       */
      // 填写JavaScript
      //   function iterate(obj) {
      //     //使用for in 遍历对象
      //     let result = [];

      //     for (let key in obj)
      //       if (obj.hasOwnProperty(key)) result.push(key + ": " + obj[key]);

      //     return result;
      //   }

      //使用Object.keys获取属性名map进行遍历
      const iterate = (obj) =>
        Object.keys(obj).map((key) => key + ": " + obj[key]);

      var C = function () {
        this.foo = "bar";
        this.baz = "bim";
      };
      C.prototype.bop = "bip";
      console.log(iterate(new C()));
    </script>
  </body>
</html>
